home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 090 / cmln1085.arc / MODULA2.LTG < prev    next >
Text File  |  1986-02-27  |  1KB  |  52 lines

  1.  
  2.  
  3.                            Listing 2. 
  4.                        Code for sort test.
  5.  
  6.  
  7. MODULE CLMySort;
  8. (* Program will test the speed of sorting an integer array.        *)
  9. (* The program will create an array sorted from smaller to larger  *)
  10. (* integers, then sort them in the reverse order.                  *)
  11.  
  12. FROM InOut IMPORT WriteString, WriteLn, WriteCard;
  13.  
  14. CONST MAX = 1000;
  15.  
  16. TYPE NUMBERS = ARRAY[1..MAX] OF CARDINAL;
  17.  
  18. VAR DONE : BOOLEAN;
  19.     JUMP, I, J, TEMPO : CARDINAL;
  20.     A : NUMBERS;è
  21. BEGIN
  22.     WriteString('Initializing integer array'); WriteLn;
  23.     FOR I := 1 TO MAX DO
  24.         A[I] := I
  25.     END;
  26.  
  27.     JUMP := MAX;
  28.     WriteString('Beginning to sort'); WriteLn;
  29.     WHILE JUMP > 1 DO
  30.         JUMP := JUMP DIV 2;
  31.         REPEAT
  32.             DONE := TRUE;
  33.             FOR J := 1 TO (MAX - JUMP) DO
  34.                 I := J + JUMP;
  35.                 IF A[I] > A[J] THEN
  36.                     DONE := FALSE;
  37.                     TEMPO := A[I];
  38.                     A[I] := A[J];
  39.                     A[J] := TEMPO;
  40.                 END;
  41.             END;
  42.         UNTIL DONE;
  43.     END; (* End of while-loop *)
  44.  
  45.     WriteString('Finished sorting!');
  46.     FOR I := 1 TO MAX DO
  47.         WriteCard(A[I],3); 
  48.         WriteString('  ');
  49.     END;
  50.     WriteLn;
  51. END CLMySort.
  52.